//阚子路、张译文
#include "load.h"
#include "ui_load.h"
#include "Code/Component/ComponentParam.h"

Load::Load(QWidget *parent)
    : QDialog(parent)
    , ui(new Ui::Load)
{
    ui->setupUi(this);
    setWindowTitle("负载属性"); // 设置窗口标题（匹配负载组件，与其他组件命名逻辑一致）
}

Load::~Load()
{
    delete ui;
}

// 获取负载功率（从UI的powerEdit控件读取，控件名与柴油发电机/储能/电网保持统一）
double Load::getPower() const
{
    return ui->powerEdit->text().toDouble();
}



// 确定按钮：关闭对话框并返回成功状态（与其他组件交互逻辑完全对齐）
void Load::on_confirmBtn_clicked()
{
    accept(); // 关闭对话框，返回QDialog::Accepted
}

// 取消按钮：关闭对话框并返回失败状态（统一所有组件的取消逻辑）
void Load::on_cancelBtn_clicked()
{
    reject(); // 关闭对话框，返回QDialog::Rejected
}

// 按钮盒确认按钮（提交负载参数更新，核心逻辑与其他组件一致）
void Load::on_buttonBox_accepted()
{
    ComponentParam param;
    param.id = 4; // 负载的唯一标识ID（按约定区分：柴油发电机3、储能2、电网5、负载4）
    param.type = "负载"; // 明确组件类型为“负载”
    param.currentPower = this->getPower(); // 读取界面输入的负载功率

    // （可选）若需扩展负载专属参数（如负载类型、损耗系数），可补充：
    // param.efficiency = this->getEfficiency(); // 需ComponentParam类支持efficiency字段

    emit paramsUpdated(param); // 发射信号，传递更新后的负载参数
    accept(); // 关闭对话框

    // 调试输出（保持与其他组件一致的格式，便于统一查看日志）
    qDebug() << "emit paramsUpdated(param) [负载]";
    qDebug() << "id=" << param.id << ", type=" << param.type << ", currentPower=" << param.currentPower;
}
